Crear imagen con maven y spring-boot

Descripcion

Como usar maven para crear una imagen de un programa desarrollado con spring (spring-boot).

Metodo

Primero tenemos que importar el siguiente plugin en el pom.xml

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <image>
                    <name>team2postacademy/api_skill_matrix</name>
                </image>
            </configuration>
        </plugin>
    </plugins>
</build>

Tenemos que incluir el código despues de las dependencias tal que así:

En la etiqueta name debemos de introducir el usuairo de docker seguido de barra "/" y seguido del nombre que le queramos dar a la imagen

Una vez hemos añadido el plugin podemos generar la imagen de dos maneras, desde el visual code o desde el terminal

Usando Visual code

Para generar la imagen desde el Visual Code simplemente tenemos que irnos a:

Maven > Plugins > Spring-Boot > build-Image

Una vez hecho esto ya tendremos la imagen generada dentro de docker

Usando el terminal

Para realizar la misma operación utilizando el terminal simplemente tenemos que irnos a la carpeta donde tengamos el proyecto y ejecutar el siguiente comando

mvn spring-boot:build-image

Una vez hecho esto ya tendremos la imagen generada dentro de docker

Si queremos consultar si la imagen se ha generado en docker podemos hacerlo con el siguiente comando:

docker images

Error al conectar con Docker

Si al generar la imagen obtenemos el siguiente error:

[INFO] I/O exception (java.nio.file.NoSuchFileException) caught when processing request to {}->docker://localhost:2376: \\.\pipe\docker_engine
[INFO] Retrying request to {}->docker://localhost:2376

Podemos seguir este manual para configurar la conexion con docker: Configurar Docker en WSL para desplegar imagenes

Tags

Docker | Spring | Imagen | deploy